說到寫swift就不得不提一下我們很常看到的這段程式
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
那他到底是什麼呢
就讓我娓娓道來吧
首先這段程式代表的是生命週期的其中一部分
他其實就是你在進入app的時候第一個去載入的方法
view controller被載入記憶體之後就會呼叫他
需要注意的是他只會被呼叫一次
簡單來說我們要對初始化的東西做更動修改在這邊去做動作就對了
我再介紹一個程式碼名為loadView
override func loadView() {
super.loadView()
}
這段程式碼會在viewDidLoad前執行,是視圖初始化的意思,老實說自己並不是很常用這一段程式所以不了解他,但經過一番調查原來我們本身不應該直接調用它,而是由系統自行調用。它本身會生成一個view,並會為你的view controller的view屬性賦值。
接下來我要介紹的是viewWillAppear
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
}
這段程式會在viewdidload後執行,顧名思義就是畫面即將出現的意思
你可以在畫面即將展示的時候對裡面的內容做調整,像是去對狀態欄位的狀態做修改之類的。
那還有一個跟viewDidLoad有點像的程式就是viewDidAppear
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
}
他們最大的不同點就是viewDidLoad在生命週期中是只會被載入一次,而它是可以被無限調用的
viewDidAppear意思就是試圖完成呈現,我們可以對已經呈現的畫面做修改,而我通常會用這一段程式去更新我的畫面。
下面還有兩個程式分別是viewWillDisappear和viewDidDisappear
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
}
他們分別是畫面即將消失和換面已經消失
這兩段其實我也不常用(應該說我不會特別呼叫他們去做什麼東西的修改),但其實當我們在跳轉頁面的時候他們就會觸發。